[INFO] fetching crate fantoccini 0.22.1...
[INFO] fixing fantoccini-0.22.1 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] extracting crate fantoccini 0.22.1 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate fantoccini 0.22.1
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate fantoccini 0.22.1
[INFO] tweaked toml for crates.io crate fantoccini 0.22.1 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate fantoccini 0.22.1 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate fantoccini 0.22.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] c2d87d653978c404780271052c342a40fe891017b35cc423d6377206142201d6
[INFO] running `Command { std: "docker" "start" "c2d87d653978c404780271052c342a40fe891017b35cc423d6377206142201d6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c2d87d653978c404780271052c342a40fe891017b35cc423d6377206142201d6" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c2d87d653978c404780271052c342a40fe891017b35cc423d6377206142201d6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c2d87d653978c404780271052c342a40fe891017b35cc423d6377206142201d6" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2021 edition to 2024
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling num-conv v0.2.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking litemap v0.7.5
[INFO] [stderr]    Compiling icu_segmenter_data v1.5.1
[INFO] [stderr]     Checking writeable v0.5.5
[INFO] [stderr]     Checking bitflags v2.11.0
[INFO] [stderr]    Compiling cookie v0.16.2
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking core_maths v0.1.1
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking sdd v3.0.10
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]     Checking scc v2.4.0
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling serial_test_derive v3.4.0
[INFO] [stderr]     Checking tinystr v0.7.6
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]     Checking icu_locid v1.5.0
[INFO] [stderr]     Checking serial_test v3.4.0
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking yoke v0.7.5
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerovec v0.10.4
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking icu_collections v1.5.0
[INFO] [stderr]     Checking icu_provider v1.5.0
[INFO] [stderr]     Checking icu_segmenter v1.5.0
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking webdriver v0.53.0
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking fantoccini v0.22.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/wait.rs (1 fix)
[INFO] [stderr]        Fixed src/session.rs (36 fixes)
[INFO] [stderr]        Fixed src/lib.rs (1 fix)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/session.rs:695:15
[INFO] [stdout]     |
[INFO] [stdout] 685 |         let mut client = Self::setup_session(client, wdb, None).await?;
[INFO] [stdout]     |             ----------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `client` calls a custom destructor
[INFO] [stdout]     |             `client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 695 |         match Self::map_handshake_response(client.issue(WebDriverCommand::NewSession(spec)).await) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----^
[INFO] [stdout]     |               |                                                                             |
[INFO] [stdout]     |               |                                                                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |               |                                                                             up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 705 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `client` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/session.rs:695:93
[INFO] [stdout]     |
[INFO] [stdout] 685 |         let mut client = Self::setup_session(client, wdb, None).await?;
[INFO] [stdout]     |             ----------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `client` calls a custom destructor
[INFO] [stdout]     |             `client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 695 |         match Self::map_handshake_response(client.issue(WebDriverCommand::NewSession(spec)).await) {
[INFO] [stdout]     |                                                                                             ^^^^^
[INFO] [stdout]     |                                                                                             |
[INFO] [stdout]     |                                                                                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                                                             up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 705 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `client` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/wait.rs:138:19
[INFO] [stdout]      |
[INFO] [stdout]   72 |             match $ready? {
[INFO] [stdout]      |                   -------
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                   `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]   75 |                     tokio::time::sleep($self.period).await;
[INFO] [stdout]      |                     --------------------------------------
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     `__awaitee` calls a custom destructor
[INFO] [stdout]      |                     `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]   76 |                 }
[INFO] [stdout]   77 |             };
[INFO] [stdout]      |              - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout]  138 |             match self.client.by(search.into_parameters()).await {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                   |                                        |
[INFO] [stdout]      |                   |                                        this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                   |                                        up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                   up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.17/src/lib.rs:1317:9
[INFO] [stdout]      |
[INFO] [stdout] 1317 | /         impl $(<
[INFO] [stdout] 1318 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1319 | |             $( $generics
[INFO] [stdout] 1320 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1323 | |             ),*
[INFO] [stdout] 1324 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024
[INFO] [stdout]    --> src/session.rs:471:16
[INFO] [stdout]     |
[INFO] [stdout] 471 |             if let Some(Task { request, ack }) = ready!(Pin::new(&mut self.rx).poll_recv(cx)) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------------------------
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  this value has a significant drop implementation which may observe a major change in drop order and requires your discretion
[INFO] [stdout]     |
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/oneshot.rs:871:1
[INFO] [stdout]     |
[INFO] [stdout] 871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: value may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/oneshot.rs:871:1
[INFO] [stdout]     |
[INFO] [stdout] 871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: the value is now dropped here in Edition 2024
[INFO] [stdout]    --> src/session.rs:511:13
[INFO] [stdout]     |
[INFO] [stdout] 511 |             } else {
[INFO] [stdout]     |             ^
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html>
[INFO] [stdout]     = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl Future<Output = Result<Value, CmdError>>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/session.rs:717:10
[INFO] [stdout]     |
[INFO] [stdout] 717 |     ) -> impl Future<Output = Result<Json, error::CmdError>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/session.rs:715:9
[INFO] [stdout]     |
[INFO] [stdout] 715 |         &self,
[INFO] [stdout]     |         ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/session.rs:716:18
[INFO] [stdout]     |
[INFO] [stdout] 716 |         cmd: Box<impl WebDriverCompatibleCommand + Send + 'static + ?Sized>,
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]     = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 714 ~     fn issue_wd_cmd<T: WebDriverCompatibleCommand + Send + 'static + ?Sized>(
[INFO] [stdout] 715 |         &self,
[INFO] [stdout] 716 ~         cmd: Box<T>,
[INFO] [stdout] 717 ~     ) -> impl Future<Output = Result<Json, error::CmdError>> + use<C, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating tests/local.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/session.rs:695:15
[INFO] [stdout]     |
[INFO] [stdout] 685 |         let mut client = Self::setup_session(client, wdb, None).await?;
[INFO] [stdout]     |             ----------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `client` calls a custom destructor
[INFO] [stdout]     |             `client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 695 |         match Self::map_handshake_response(client.issue(WebDriverCommand::NewSession(spec)).await) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----^
[INFO] [stdout]     |               |                                                                             |
[INFO] [stdout]     |               |                                                                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |               |                                                                             up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 705 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `client` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/session.rs:695:93
[INFO] [stdout]     |
[INFO] [stdout] 685 |         let mut client = Self::setup_session(client, wdb, None).await?;
[INFO] [stdout]     |             ----------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `client` calls a custom destructor
[INFO] [stdout]     |             `client` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 695 |         match Self::map_handshake_response(client.issue(WebDriverCommand::NewSession(spec)).await) {
[INFO] [stdout]     |                                                                                             ^^^^^
[INFO] [stdout]     |                                                                                             |
[INFO] [stdout]     |                                                                                             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                                                             up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 705 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `client` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/wait.rs:138:19
[INFO] [stdout]      |
[INFO] [stdout]   72 |             match $ready? {
[INFO] [stdout]      |                   -------
[INFO] [stdout]      |                   |
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                   `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                   `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]   75 |                     tokio::time::sleep($self.period).await;
[INFO] [stdout]      |                     --------------------------------------
[INFO] [stdout]      |                     |
[INFO] [stdout]      |                     `__awaitee` calls a custom destructor
[INFO] [stdout]      |                     `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]   76 |                 }
[INFO] [stdout]   77 |             };
[INFO] [stdout]      |              - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout]  138 |             match self.client.by(search.into_parameters()).await {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                   |                                        |
[INFO] [stdout]      |                   |                                        this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                   |                                        up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                   up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pin-project-lite-0.2.17/src/lib.rs:1317:9
[INFO] [stdout]      |
[INFO] [stdout] 1317 | /         impl $(<
[INFO] [stdout] 1318 | |             $( $lifetime $(: $lifetime_bound)? ,)*
[INFO] [stdout] 1319 | |             $( $generics
[INFO] [stdout] 1320 | |                 $(: $generics_bound)?
[INFO] [stdout] ...    |
[INFO] [stdout] 1323 | |             ),*
[INFO] [stdout] 1324 | |         >)? $crate::__private::Drop for $self_ty
[INFO] [stdout]      | |________________________________________________^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/time/entry.rs:280:1
[INFO] [stdout]      |
[INFO] [stdout]  280 | / pin_project! {
[INFO] [stdout] ...    |
[INFO] [stdout]  310 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024
[INFO] [stdout]    --> src/session.rs:471:16
[INFO] [stdout]     |
[INFO] [stdout] 471 |             if let Some(Task { request, ack }) = ready!(Pin::new(&mut self.rx).poll_recv(cx)) {
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------------------------
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  this value has a significant drop implementation which may observe a major change in drop order and requires your discretion
[INFO] [stdout]     |
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/oneshot.rs:871:1
[INFO] [stdout]     |
[INFO] [stdout] 871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: value may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/oneshot.rs:871:1
[INFO] [stdout]     |
[INFO] [stdout] 871 | impl<T> Drop for Sender<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: value invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: the value is now dropped here in Edition 2024
[INFO] [stdout]    --> src/session.rs:511:13
[INFO] [stdout]     |
[INFO] [stdout] 511 |             } else {
[INFO] [stdout]     |             ^
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html>
[INFO] [stdout]     = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `impl Future<Output = Result<Value, error::CmdError>>` will capture more lifetimes than possibly intended in edition 2024
[INFO] [stdout]    --> src/session.rs:717:10
[INFO] [stdout]     |
[INFO] [stdout] 717 |     ) -> impl Future<Output = Result<Json, error::CmdError>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds
[INFO] [stdout]    --> src/session.rs:715:9
[INFO] [stdout]     |
[INFO] [stdout] 715 |         &self,
[INFO] [stdout]     |         ^
[INFO] [stdout]     = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/session.rs:716:18
[INFO] [stdout]     |
[INFO] [stdout] 716 |         cmd: Box<impl WebDriverCompatibleCommand + Send + 'static + ?Sized>,
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
[INFO] [stdout]     = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 714 ~     fn issue_wd_cmd<T: WebDriverCompatibleCommand + Send + 'static + ?Sized>(
[INFO] [stdout] 715 |         &self,
[INFO] [stdout] 716 ~         cmd: Box<T>,
[INFO] [stdout] 717 ~     ) -> impl Future<Output = Result<Json, error::CmdError>> + use<C, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]        Fixed tests/common.rs (3 fixes)
[INFO] [stderr]    Migrating tests/remote.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> tests/local.rs:45:15
[INFO] [stdout]     |
[INFO] [stdout]  42 |     let active = c.active_element().await?;
[INFO] [stdout]     |         ------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `active` calls a custom destructor
[INFO] [stdout]     |         `active` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  45 |     c.close().await
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  46 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `active` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> tests/local.rs:101:15
[INFO] [stdout]     |
[INFO] [stdout]  87 |     let iframe_element = c.find(Locator::Id("iframe")).await?;
[INFO] [stdout]     |         --------------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `iframe_element` calls a custom destructor
[INFO] [stdout]     |         `iframe_element` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  91 |     let button_in_iframe = c.find(Locator::Id("iframe_button")).await?;
[INFO] [stdout]     |         ----------------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `button_in_iframe` calls a custom destructor
[INFO] [stdout]     |         `button_in_iframe` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 101 |     c.close().await
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 102 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `iframe_element` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `button_in_iframe` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> tests/local.rs:235:11
[INFO] [stdout]     |
[INFO] [stdout] 225 |     let elem = c.find(Locator::Css("#other_page_id")).await?;
[INFO] [stdout]     |         ----
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `elem` calls a custom destructor
[INFO] [stdout]     |         `elem` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 235 |     match elem.click().await {
[INFO] [stdout]     |           ^^^^^^^^^^^^^-----
[INFO] [stdout]     |           |            |
[INFO] [stdout]     |           |            this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |           |            up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 239 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `elem` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> tests/local.rs:235:24
[INFO] [stdout]     |
[INFO] [stdout] 225 |     let elem = c.find(Locator::Css("#other_page_id")).await?;
[INFO] [stdout]     |         ----
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `elem` calls a custom destructor
[INFO] [stdout]     |         `elem` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 235 |     match elem.click().await {
[INFO] [stdout]     |                        ^^^^^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                        up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 239 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `elem` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> tests/local.rs:481:15
[INFO] [stdout]     |
[INFO] [stdout] 459 |     let e = c.find(Locator::Id("span_id")).await?;
[INFO] [stdout]     |         -
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `e` calls a custom destructor
[INFO] [stdout]     |         `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 481 |     c.close().await
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 482 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> tests/local.rs:500:15
[INFO] [stdout]     |
[INFO] [stdout] 489 |     let f = c.form(Locator::Css("#search-form")).await?;
[INFO] [stdout]     |         -
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `f` calls a custom destructor
[INFO] [stdout]     |         `f` will be dropped later as of Edition 2024
[INFO] [stdout] 490 |     let f = f
[INFO] [stdout]     |         -
[INFO] [stdout]     |         |
[INFO] [stdout]     |         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |         `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 500 |     c.close().await
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 501 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `f` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> tests/local.rs:517:15
[INFO] [stdout]     |
[INFO] [stdout] 508 |     let f = c.form(Locator::Css("#search-form")).await?;
[INFO] [stdout]     |         -
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `f` calls a custom destructor
[INFO] [stdout]     |         `f` will be dropped later as of Edition 2024
[INFO] [stdout] 509 |     let f = f.set_by_name("search", "foobar").await?;
[INFO] [stdout]     |         -
[INFO] [stdout]     |         |
[INFO] [stdout]     |         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |         `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 517 |     c.close().await
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 518 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `f` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> tests/local.rs:571:15
[INFO] [stdout]     |
[INFO] [stdout] 560 |     let pixels = raw
[INFO] [stdout]     |         ------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `pixels` calls a custom destructor
[INFO] [stdout]     |         `pixels` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 571 |     c.close().await
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 572 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `pixels` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.11.1/src/bytes.rs:680:1
[INFO] [stdout]     |
[INFO] [stdout] 680 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> tests/local.rs:656:15
[INFO] [stdout]     |
[INFO] [stdout] 639 |     let footer = c.find(Locator::Css("#footer")).await?;
[INFO] [stdout]     |         ------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `footer` calls a custom destructor
[INFO] [stdout]     |         `footer` will be dropped later as of Edition 2024
[INFO] [stdout] 640 |     // Get all the li place elements in the footer
[INFO] [stdout] 641 |     let mut places = footer.find_all(Locator::Css("li")).await?;
[INFO] [stdout]     |         ----------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `places` calls a custom destructor
[INFO] [stdout]     |         `places` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 656 |     c.close().await
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 657 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `footer` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `places` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating tests/elements.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating examples/basic.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/alert.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating examples/wait.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/common.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating tests/actions.rs from 2021 edition to 2024
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 24.58s
[INFO] [stderr] crater-edition-check: fantoccini v0.22.1 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking fantoccini v0.22.1 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0502]: cannot borrow `self` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/session.rs:460:30
[INFO] [stdout]     |
[INFO] [stdout] 460 |                 match ready!(self.ongoing.poll(has_session, cx)) {
[INFO] [stdout]     |                              ^^^^ mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 507 |                             fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                  ------------------------------------
[INFO] [stdout]     |                                  |        |
[INFO] [stdout]     |                                  |        immutable borrow occurs here
[INFO] [stdout]     |                                  this usage requires that `self` is borrowed for `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/session.rs:507:43
[INFO] [stdout]     |
[INFO] [stdout] 507 | ...                   fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/session.rs:716:18
[INFO] [stdout]     |
[INFO] [stdout] 716 |         cmd: Box<impl WebDriverCompatibleCommand + Send + 'static + ?Sized>,
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 714 ~     fn issue_wd_cmd<T: WebDriverCompatibleCommand + Send + 'static + ?Sized>(
[INFO] [stdout] 715 |         &self,
[INFO] [stdout] 716 ~         cmd: Box<T>,
[INFO] [stdout] 717 ~     ) -> impl Future<Output = Result<Json, error::CmdError>> + use<C, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/session.rs:463:25
[INFO] [stdout]     |
[INFO] [stdout] 463 |                         self.session = Some(sid);
[INFO] [stdout]     |                         ^^^^ mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 507 |                             fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                  ------------------------------------
[INFO] [stdout]     |                                  |        |
[INFO] [stdout]     |                                  |        immutable borrow occurs here
[INFO] [stdout]     |                                  this usage requires that `self` is borrowed for `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/session.rs:507:43
[INFO] [stdout]     |
[INFO] [stdout] 507 | ...                   fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/session.rs:716:18
[INFO] [stdout]     |
[INFO] [stdout] 716 |         cmd: Box<impl WebDriverCompatibleCommand + Send + 'static + ?Sized>,
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 714 ~     fn issue_wd_cmd<T: WebDriverCompatibleCommand + Send + 'static + ?Sized>(
[INFO] [stdout] 715 |         &self,
[INFO] [stdout] 716 ~         cmd: Box<T>,
[INFO] [stdout] 717 ~     ) -> impl Future<Output = Result<Json, error::CmdError>> + use<C, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/session.rs:460:30
[INFO] [stdout]     |
[INFO] [stdout] 460 |                 match ready!(self.ongoing.poll(has_session, cx)) {
[INFO] [stdout]     |                              ^^^^ mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 507 |                             fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                  ------------------------------------
[INFO] [stdout]     |                                  |        |
[INFO] [stdout]     |                                  |        immutable borrow occurs here
[INFO] [stdout]     |                                  this usage requires that `self` is borrowed for `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/session.rs:507:43
[INFO] [stdout]     |
[INFO] [stdout] 507 | ...                   fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/session.rs:716:18
[INFO] [stdout]     |
[INFO] [stdout] 716 |         cmd: Box<impl WebDriverCompatibleCommand + Send + 'static + ?Sized>,
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 714 ~     fn issue_wd_cmd<T: WebDriverCompatibleCommand + Send + 'static + ?Sized>(
[INFO] [stdout] 715 |         &self,
[INFO] [stdout] 716 ~         cmd: Box<T>,
[INFO] [stdout] 717 ~     ) -> impl Future<Output = Result<Json, error::CmdError>> + use<C, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/session.rs:463:25
[INFO] [stdout]     |
[INFO] [stdout] 463 |                         self.session = Some(sid);
[INFO] [stdout]     |                         ^^^^ mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 507 |                             fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                  ------------------------------------
[INFO] [stdout]     |                                  |        |
[INFO] [stdout]     |                                  |        immutable borrow occurs here
[INFO] [stdout]     |                                  this usage requires that `self` is borrowed for `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/session.rs:507:43
[INFO] [stdout]     |
[INFO] [stdout] 507 | ...                   fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/session.rs:716:18
[INFO] [stdout]     |
[INFO] [stdout] 716 |         cmd: Box<impl WebDriverCompatibleCommand + Send + 'static + ?Sized>,
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 714 ~     fn issue_wd_cmd<T: WebDriverCompatibleCommand + Send + 'static + ?Sized>(
[INFO] [stdout] 715 |         &self,
[INFO] [stdout] 716 ~         cmd: Box<T>,
[INFO] [stdout] 717 ~     ) -> impl Future<Output = Result<Json, error::CmdError>> + use<C, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/session.rs:471:71
[INFO] [stdout]     |
[INFO] [stdout] 471 |             if let Some(Task { request, ack }) = ready!(Pin::new(&mut self.rx).poll_recv(cx)) {
[INFO] [stdout]     |                                                                       ^^^^ mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 507 |                             fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                  ------------------------------------
[INFO] [stdout]     |                                  |        |
[INFO] [stdout]     |                                  |        immutable borrow occurs here
[INFO] [stdout]     |                                  this usage requires that `self` is borrowed for `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/session.rs:507:43
[INFO] [stdout]     |
[INFO] [stdout] 507 | ...                   fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/session.rs:716:18
[INFO] [stdout]     |
[INFO] [stdout] 716 |         cmd: Box<impl WebDriverCompatibleCommand + Send + 'static + ?Sized>,
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 714 ~     fn issue_wd_cmd<T: WebDriverCompatibleCommand + Send + 'static + ?Sized>(
[INFO] [stdout] 715 |         &self,
[INFO] [stdout] 716 ~         cmd: Box<T>,
[INFO] [stdout] 717 ~     ) -> impl Future<Output = Result<Json, error::CmdError>> + use<C, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/session.rs:471:71
[INFO] [stdout]     |
[INFO] [stdout] 471 |             if let Some(Task { request, ack }) = ready!(Pin::new(&mut self.rx).poll_recv(cx)) {
[INFO] [stdout]     |                                                                       ^^^^ mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 507 |                             fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                  ------------------------------------
[INFO] [stdout]     |                                  |        |
[INFO] [stdout]     |                                  |        immutable borrow occurs here
[INFO] [stdout]     |                                  this usage requires that `self` is borrowed for `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/session.rs:507:43
[INFO] [stdout]     |
[INFO] [stdout] 507 | ...                   fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/session.rs:716:18
[INFO] [stdout]     |
[INFO] [stdout] 716 |         cmd: Box<impl WebDriverCompatibleCommand + Send + 'static + ?Sized>,
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 714 ~     fn issue_wd_cmd<T: WebDriverCompatibleCommand + Send + 'static + ?Sized>(
[INFO] [stdout] 715 |         &self,
[INFO] [stdout] 716 ~         cmd: Box<T>,
[INFO] [stdout] 717 ~     ) -> impl Future<Output = Result<Json, error::CmdError>> + use<C, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/session.rs:482:25
[INFO] [stdout]     |
[INFO] [stdout] 482 |                         self.ua = Some(ua);
[INFO] [stdout]     |                         ^^^^ mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 507 |                             fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                  ------------------------------------
[INFO] [stdout]     |                                  |        |
[INFO] [stdout]     |                                  |        immutable borrow occurs here
[INFO] [stdout]     |                                  this usage requires that `self` is borrowed for `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/session.rs:507:43
[INFO] [stdout]     |
[INFO] [stdout] 507 | ...                   fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/session.rs:716:18
[INFO] [stdout]     |
[INFO] [stdout] 716 |         cmd: Box<impl WebDriverCompatibleCommand + Send + 'static + ?Sized>,
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 714 ~     fn issue_wd_cmd<T: WebDriverCompatibleCommand + Send + 'static + ?Sized>(
[INFO] [stdout] 715 |         &self,
[INFO] [stdout] 716 ~         cmd: Box<T>,
[INFO] [stdout] 717 ~     ) -> impl Future<Output = Result<Json, error::CmdError>> + use<C, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/session.rs:490:25
[INFO] [stdout]     |
[INFO] [stdout] 490 |                         self.ongoing = Ongoing::Raw {
[INFO] [stdout]     |                         ^^^^ mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 507 |                             fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                  ------------------------------------
[INFO] [stdout]     |                                  |        |
[INFO] [stdout]     |                                  |        immutable borrow occurs here
[INFO] [stdout]     |                                  this usage requires that `self` is borrowed for `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/session.rs:507:43
[INFO] [stdout]     |
[INFO] [stdout] 507 | ...                   fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/session.rs:716:18
[INFO] [stdout]     |
[INFO] [stdout] 716 |         cmd: Box<impl WebDriverCompatibleCommand + Send + 'static + ?Sized>,
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 714 ~     fn issue_wd_cmd<T: WebDriverCompatibleCommand + Send + 'static + ?Sized>(
[INFO] [stdout] 715 |         &self,
[INFO] [stdout] 716 ~         cmd: Box<T>,
[INFO] [stdout] 717 ~     ) -> impl Future<Output = Result<Json, error::CmdError>> + use<C, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/session.rs:482:25
[INFO] [stdout]     |
[INFO] [stdout] 482 |                         self.ua = Some(ua);
[INFO] [stdout]     |                         ^^^^ mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 507 |                             fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                  ------------------------------------
[INFO] [stdout]     |                                  |        |
[INFO] [stdout]     |                                  |        immutable borrow occurs here
[INFO] [stdout]     |                                  this usage requires that `self` is borrowed for `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/session.rs:507:43
[INFO] [stdout]     |
[INFO] [stdout] 507 | ...                   fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/session.rs:716:18
[INFO] [stdout]     |
[INFO] [stdout] 716 |         cmd: Box<impl WebDriverCompatibleCommand + Send + 'static + ?Sized>,
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 714 ~     fn issue_wd_cmd<T: WebDriverCompatibleCommand + Send + 'static + ?Sized>(
[INFO] [stdout] 715 |         &self,
[INFO] [stdout] 716 ~         cmd: Box<T>,
[INFO] [stdout] 717 ~     ) -> impl Future<Output = Result<Json, error::CmdError>> + use<C, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/session.rs:490:25
[INFO] [stdout]     |
[INFO] [stdout] 490 |                         self.ongoing = Ongoing::Raw {
[INFO] [stdout]     |                         ^^^^ mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 507 |                             fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                  ------------------------------------
[INFO] [stdout]     |                                  |        |
[INFO] [stdout]     |                                  |        immutable borrow occurs here
[INFO] [stdout]     |                                  this usage requires that `self` is borrowed for `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/session.rs:507:43
[INFO] [stdout]     |
[INFO] [stdout] 507 | ...                   fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/session.rs:716:18
[INFO] [stdout]     |
[INFO] [stdout] 716 |         cmd: Box<impl WebDriverCompatibleCommand + Send + 'static + ?Sized>,
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 714 ~     fn issue_wd_cmd<T: WebDriverCompatibleCommand + Send + 'static + ?Sized>(
[INFO] [stdout] 715 |         &self,
[INFO] [stdout] 716 ~         cmd: Box<T>,
[INFO] [stdout] 717 ~     ) -> impl Future<Output = Result<Json, error::CmdError>> + use<C, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/session.rs:497:25
[INFO] [stdout]     |
[INFO] [stdout] 497 |                         self.persist = true;
[INFO] [stdout]     |                         ^^^^ mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 507 |                             fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                  ------------------------------------
[INFO] [stdout]     |                                  |        |
[INFO] [stdout]     |                                  |        immutable borrow occurs here
[INFO] [stdout]     |                                  this usage requires that `self` is borrowed for `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/session.rs:507:43
[INFO] [stdout]     |
[INFO] [stdout] 507 | ...                   fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/session.rs:716:18
[INFO] [stdout]     |
[INFO] [stdout] 716 |         cmd: Box<impl WebDriverCompatibleCommand + Send + 'static + ?Sized>,
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 714 ~     fn issue_wd_cmd<T: WebDriverCompatibleCommand + Send + 'static + ?Sized>(
[INFO] [stdout] 715 |         &self,
[INFO] [stdout] 716 ~         cmd: Box<T>,
[INFO] [stdout] 717 ~     ) -> impl Future<Output = Result<Json, error::CmdError>> + use<C, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/session.rs:502:25
[INFO] [stdout]     |
[INFO] [stdout] 502 |                         self.shutdown(Some(ack));
[INFO] [stdout]     |                         ^^^^ mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 507 |                             fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                  ------------------------------------
[INFO] [stdout]     |                                  |        |
[INFO] [stdout]     |                                  |        immutable borrow occurs here
[INFO] [stdout]     |                                  this usage requires that `self` is borrowed for `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/session.rs:507:43
[INFO] [stdout]     |
[INFO] [stdout] 507 | ...                   fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/session.rs:716:18
[INFO] [stdout]     |
[INFO] [stdout] 716 |         cmd: Box<impl WebDriverCompatibleCommand + Send + 'static + ?Sized>,
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 714 ~     fn issue_wd_cmd<T: WebDriverCompatibleCommand + Send + 'static + ?Sized>(
[INFO] [stdout] 715 |         &self,
[INFO] [stdout] 716 ~         cmd: Box<T>,
[INFO] [stdout] 717 ~     ) -> impl Future<Output = Result<Json, error::CmdError>> + use<C, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/session.rs:505:25
[INFO] [stdout]     |
[INFO] [stdout] 505 |                         self.ongoing = Ongoing::WebDriver {
[INFO] [stdout]     |                         ^^^^ mutable borrow occurs here
[INFO] [stdout] 506 |                             ack,
[INFO] [stdout] 507 |                             fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                  ------------------------------------
[INFO] [stdout]     |                                  |        |
[INFO] [stdout]     |                                  |        immutable borrow occurs here
[INFO] [stdout]     |                                  this usage requires that `self` is borrowed for `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/session.rs:507:43
[INFO] [stdout]     |
[INFO] [stdout] 507 | ...                   fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/session.rs:716:18
[INFO] [stdout]     |
[INFO] [stdout] 716 |         cmd: Box<impl WebDriverCompatibleCommand + Send + 'static + ?Sized>,
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 714 ~     fn issue_wd_cmd<T: WebDriverCompatibleCommand + Send + 'static + ?Sized>(
[INFO] [stdout] 715 |         &self,
[INFO] [stdout] 716 ~         cmd: Box<T>,
[INFO] [stdout] 717 ~     ) -> impl Future<Output = Result<Json, error::CmdError>> + use<C, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: lifetime may not live long enough
[INFO] [stdout]    --> src/session.rs:507:34
[INFO] [stdout]     |
[INFO] [stdout] 456 |     fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> {
[INFO] [stdout]     |                           - let's call the lifetime of this reference `'1`
[INFO] [stdout] ...
[INFO] [stdout] 507 |                             fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this usage requires that `'1` must outlive `'static`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `self` does not live long enough
[INFO] [stdout]    --> src/session.rs:507:43
[INFO] [stdout]     |
[INFO] [stdout] 456 |     fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> {
[INFO] [stdout]     |             -------- binding `self` declared here
[INFO] [stdout] ...
[INFO] [stdout] 507 |                             fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                  ---------^^^^-----------------------
[INFO] [stdout]     |                                  |        |
[INFO] [stdout]     |                                  |        borrowed value does not live long enough
[INFO] [stdout]     |                                  this usage requires that `self` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 522 |     }
[INFO] [stdout]     |      - `self` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/session.rs:507:43
[INFO] [stdout]     |
[INFO] [stdout] 507 | ...                   fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/session.rs:716:18
[INFO] [stdout]     |
[INFO] [stdout] 716 |         cmd: Box<impl WebDriverCompatibleCommand + Send + 'static + ?Sized>,
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 714 ~     fn issue_wd_cmd<T: WebDriverCompatibleCommand + Send + 'static + ?Sized>(
[INFO] [stdout] 715 |         &self,
[INFO] [stdout] 716 ~         cmd: Box<T>,
[INFO] [stdout] 717 ~     ) -> impl Future<Output = Result<Json, error::CmdError>> + use<C, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/session.rs:497:25
[INFO] [stdout]     |
[INFO] [stdout] 497 |                         self.persist = true;
[INFO] [stdout]     |                         ^^^^ mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 507 |                             fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                  ------------------------------------
[INFO] [stdout]     |                                  |        |
[INFO] [stdout]     |                                  |        immutable borrow occurs here
[INFO] [stdout]     |                                  this usage requires that `self` is borrowed for `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/session.rs:507:43
[INFO] [stdout]     |
[INFO] [stdout] 507 | ...                   fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/session.rs:716:18
[INFO] [stdout]     |
[INFO] [stdout] 716 |         cmd: Box<impl WebDriverCompatibleCommand + Send + 'static + ?Sized>,
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 714 ~     fn issue_wd_cmd<T: WebDriverCompatibleCommand + Send + 'static + ?Sized>(
[INFO] [stdout] 715 |         &self,
[INFO] [stdout] 716 ~         cmd: Box<T>,
[INFO] [stdout] 717 ~     ) -> impl Future<Output = Result<Json, error::CmdError>> + use<C, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/session.rs:502:25
[INFO] [stdout]     |
[INFO] [stdout] 502 |                         self.shutdown(Some(ack));
[INFO] [stdout]     |                         ^^^^ mutable borrow occurs here
[INFO] [stdout] ...
[INFO] [stdout] 507 |                             fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                  ------------------------------------
[INFO] [stdout]     |                                  |        |
[INFO] [stdout]     |                                  |        immutable borrow occurs here
[INFO] [stdout]     |                                  this usage requires that `self` is borrowed for `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/session.rs:507:43
[INFO] [stdout]     |
[INFO] [stdout] 507 | ...                   fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/session.rs:716:18
[INFO] [stdout]     |
[INFO] [stdout] 716 |         cmd: Box<impl WebDriverCompatibleCommand + Send + 'static + ?Sized>,
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 714 ~     fn issue_wd_cmd<T: WebDriverCompatibleCommand + Send + 'static + ?Sized>(
[INFO] [stdout] 715 |         &self,
[INFO] [stdout] 716 ~         cmd: Box<T>,
[INFO] [stdout] 717 ~     ) -> impl Future<Output = Result<Json, error::CmdError>> + use<C, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/session.rs:505:25
[INFO] [stdout]     |
[INFO] [stdout] 505 |                         self.ongoing = Ongoing::WebDriver {
[INFO] [stdout]     |                         ^^^^ mutable borrow occurs here
[INFO] [stdout] 506 |                             ack,
[INFO] [stdout] 507 |                             fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                  ------------------------------------
[INFO] [stdout]     |                                  |        |
[INFO] [stdout]     |                                  |        immutable borrow occurs here
[INFO] [stdout]     |                                  this usage requires that `self` is borrowed for `'static`
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/session.rs:507:43
[INFO] [stdout]     |
[INFO] [stdout] 507 | ...                   fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/session.rs:716:18
[INFO] [stdout]     |
[INFO] [stdout] 716 |         cmd: Box<impl WebDriverCompatibleCommand + Send + 'static + ?Sized>,
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 714 ~     fn issue_wd_cmd<T: WebDriverCompatibleCommand + Send + 'static + ?Sized>(
[INFO] [stdout] 715 |         &self,
[INFO] [stdout] 716 ~         cmd: Box<T>,
[INFO] [stdout] 717 ~     ) -> impl Future<Output = Result<Json, error::CmdError>> + use<C, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: lifetime may not live long enough
[INFO] [stdout]    --> src/session.rs:507:34
[INFO] [stdout]     |
[INFO] [stdout] 456 |     fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> {
[INFO] [stdout]     |                           - let's call the lifetime of this reference `'1`
[INFO] [stdout] ...
[INFO] [stdout] 507 |                             fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this usage requires that `'1` must outlive `'static`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `self` does not live long enough
[INFO] [stdout]    --> src/session.rs:507:43
[INFO] [stdout]     |
[INFO] [stdout] 456 |     fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> {
[INFO] [stdout]     |             -------- binding `self` declared here
[INFO] [stdout] ...
[INFO] [stdout] 507 |                             fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                  ---------^^^^-----------------------
[INFO] [stdout]     |                                  |        |
[INFO] [stdout]     |                                  |        borrowed value does not live long enough
[INFO] [stdout]     |                                  this usage requires that `self` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 522 |     }
[INFO] [stdout]     |      - `self` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/session.rs:507:43
[INFO] [stdout]     |
[INFO] [stdout] 507 | ...                   fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/session.rs:716:18
[INFO] [stdout]     |
[INFO] [stdout] 716 |         cmd: Box<impl WebDriverCompatibleCommand + Send + 'static + ?Sized>,
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 714 ~     fn issue_wd_cmd<T: WebDriverCompatibleCommand + Send + 'static + ?Sized>(
[INFO] [stdout] 715 |         &self,
[INFO] [stdout] 716 ~         cmd: Box<T>,
[INFO] [stdout] 717 ~     ) -> impl Future<Output = Result<Json, error::CmdError>> + use<C, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/session.rs:514:21
[INFO] [stdout]     |
[INFO] [stdout] 507 |                             fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                  ------------------------------------
[INFO] [stdout]     |                                  |        |
[INFO] [stdout]     |                                  |        immutable borrow occurs here
[INFO] [stdout]     |                                  this usage requires that `self` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 514 |                     self.ongoing = Ongoing::Break;
[INFO] [stdout]     |                     ^^^^ mutable borrow occurs here
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/session.rs:507:43
[INFO] [stdout]     |
[INFO] [stdout] 507 | ...                   fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/session.rs:716:18
[INFO] [stdout]     |
[INFO] [stdout] 716 |         cmd: Box<impl WebDriverCompatibleCommand + Send + 'static + ?Sized>,
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 714 ~     fn issue_wd_cmd<T: WebDriverCompatibleCommand + Send + 'static + ?Sized>(
[INFO] [stdout] 715 |         &self,
[INFO] [stdout] 716 ~         cmd: Box<T>,
[INFO] [stdout] 717 ~     ) -> impl Future<Output = Result<Json, error::CmdError>> + use<C, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/session.rs:516:21
[INFO] [stdout]     |
[INFO] [stdout] 507 |                             fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                  ------------------------------------
[INFO] [stdout]     |                                  |        |
[INFO] [stdout]     |                                  |        immutable borrow occurs here
[INFO] [stdout]     |                                  this usage requires that `self` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 516 |                     self.shutdown(None);
[INFO] [stdout]     |                     ^^^^ mutable borrow occurs here
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/session.rs:507:43
[INFO] [stdout]     |
[INFO] [stdout] 507 | ...                   fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/session.rs:716:18
[INFO] [stdout]     |
[INFO] [stdout] 716 |         cmd: Box<impl WebDriverCompatibleCommand + Send + 'static + ?Sized>,
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 714 ~     fn issue_wd_cmd<T: WebDriverCompatibleCommand + Send + 'static + ?Sized>(
[INFO] [stdout] 715 |         &self,
[INFO] [stdout] 716 ~         cmd: Box<T>,
[INFO] [stdout] 717 ~     ) -> impl Future<Output = Result<Json, error::CmdError>> + use<C, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/session.rs:514:21
[INFO] [stdout]     |
[INFO] [stdout] 507 |                             fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                  ------------------------------------
[INFO] [stdout]     |                                  |        |
[INFO] [stdout]     |                                  |        immutable borrow occurs here
[INFO] [stdout]     |                                  this usage requires that `self` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 514 |                     self.ongoing = Ongoing::Break;
[INFO] [stdout]     |                     ^^^^ mutable borrow occurs here
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/session.rs:507:43
[INFO] [stdout]     |
[INFO] [stdout] 507 | ...                   fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/session.rs:716:18
[INFO] [stdout]     |
[INFO] [stdout] 716 |         cmd: Box<impl WebDriverCompatibleCommand + Send + 'static + ?Sized>,
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 714 ~     fn issue_wd_cmd<T: WebDriverCompatibleCommand + Send + 'static + ?Sized>(
[INFO] [stdout] 715 |         &self,
[INFO] [stdout] 716 ~         cmd: Box<T>,
[INFO] [stdout] 717 ~     ) -> impl Future<Output = Result<Json, error::CmdError>> + use<C, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `self` as mutable because it is also borrowed as immutable
[INFO] [stdout]    --> src/session.rs:516:21
[INFO] [stdout]     |
[INFO] [stdout] 507 |                             fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                  ------------------------------------
[INFO] [stdout]     |                                  |        |
[INFO] [stdout]     |                                  |        immutable borrow occurs here
[INFO] [stdout]     |                                  this usage requires that `self` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 516 |                     self.shutdown(None);
[INFO] [stdout]     |                     ^^^^ mutable borrow occurs here
[INFO] [stdout]     |
[INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules
[INFO] [stdout]    --> src/session.rs:507:43
[INFO] [stdout]     |
[INFO] [stdout] 507 | ...                   fut: Box::pin(self.issue_wd_cmd(request)),
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
[INFO] [stdout]    --> src/session.rs:716:18
[INFO] [stdout]     |
[INFO] [stdout] 716 |         cmd: Box<impl WebDriverCompatibleCommand + Send + 'static + ?Sized>,
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit
[INFO] [stdout]     |
[INFO] [stdout] 714 ~     fn issue_wd_cmd<T: WebDriverCompatibleCommand + Send + 'static + ?Sized>(
[INFO] [stdout] 715 |         &self,
[INFO] [stdout] 716 ~         cmd: Box<T>,
[INFO] [stdout] 717 ~     ) -> impl Future<Output = Result<Json, error::CmdError>> + use<C, T> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0502, E0597.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0502`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0502, E0597.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0502`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `fantoccini` (lib test) due to 12 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `fantoccini` (lib) due to 12 previous errors
[INFO] running `Command { std: "docker" "inspect" "c2d87d653978c404780271052c342a40fe891017b35cc423d6377206142201d6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c2d87d653978c404780271052c342a40fe891017b35cc423d6377206142201d6", kill_on_drop: false }`
[INFO] [stdout] c2d87d653978c404780271052c342a40fe891017b35cc423d6377206142201d6
